package com.fjh.shop.user.model.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 会员分页查询数据传输对象
 * <p>
 * 用于接收前端传递的分页查询条件，支持按手机号、状态、真实姓名和邮箱查询
 * <p>
 * 使用说明：
 * 1. current和pageSize用于分页控制
 * 2. 其他字段为可选查询条件
 * <p>
 * 最佳实践：
 * - 建议对查询结果做缓存处理
 * - 大数据量查询应添加索引
 * <p>
 * 初学者指南：
 * - current表示当前页码，从1开始
 * - pageSize表示每页记录数
 * - 查询条件之间是AND关系
 *
 * @author wuyunbin
 * @since 2025-07-02
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberInfoPageQueryDTO {
    /**
     * 当前页码
     * 默认值：1
     */
    private Long current = 1L;

    /**
     * 每页记录数
     * 默认值：10
     */
    private Long pageSize = 10L;

    /**
     * 手机号码查询条件
     * 支持模糊查询
     */
    private String mobile;

    private Integer status;

    /**
     * 真实姓名查询条件
     * 支持模糊查询
     */
    private String realName;

    /**
     * 电子邮箱查询条件
     * 支持模糊查询
     */
    private String email;
}
